package com.ruge.test.Redis.jedis;

import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import java.util.Set;

/**
 * 爱丽丝、如歌  创建于 2018/7/2 20:21
 * http://www.cnblogs.com/knowledgesea/p/4999288.html
 *  字符串成员(member)与浮点数分值(score)之间的有序映射，元素的排列顺序由分值的大小决定。添加，获取，
 *  删除单个元素，根据分值范围(range)或者成员来获取元素。
 *  ①zadd、将一个带有给定分值的成员添加到有序集合里面
 *  ②zrange、根据元素在有序排列中所处的位置，从有序集合里面获取多个元素
 *  ③zrangebyscore、获取有序集合在给定分值范围内的所有元素
 *  ④zrem、如果指定成员存在于有序集合中，那么移除这个成员
 */
public class Jedis_数据结构_zSet {
    @Test
    public void test1() {
        System.out.println("http://www.cnblogs.com/knowledgesea/p/4999288.html");
        Jedis jedis = new Jedis("90.19.2.15", 6379);
        jedis.zadd("zSet",1,"zSet1");
        jedis.zadd("zSet",2,"zSet2");
        jedis.zadd("zSet",3,"zSet3");
        jedis.zadd("zSet",4,"zSet4");
        jedis.zadd("zSet",5,"zSet5");
        jedis.zadd("zSet",6,"zSet6");
        Set<String> zrange = jedis.zrange("zSet", 1, 100);
        for (String s:zrange
             ) {
            System.out.println(s);
        }
    }

    /**
     * 连接池方式连接
     */
    @Test
    public void test2() {
        JedisPoolConfig config = new JedisPoolConfig();
        /**
         * 最大连接数
         */
        config.setMaxTotal(30);
        /**
         * 最大空闲连接数
         */
        config.setMaxIdle(10);
        /**
         * 获得连接池
         */
        JedisPool jedisPool = new JedisPool(config, "90.19.2.15", 6379);
        /**
         * 获得核心对象
         */
        Jedis jedis = new Jedis();

        try {
            /**
             * 通过连接池获得连接
             */
            jedis = jedisPool.getResource();
            jedis.set("name","刘德华");
            String name = jedis.get("name");
            System.out.println(name);
        } catch (Exception e) {

        } finally {
            if (jedis != null) {
                jedis.close();
            }
            if (jedisPool != null) {
                jedisPool.close();
            }
        }
    }
}
